package com.cloud.sysmana.entity.dao;

import java.util.List;

import com.cloud.sysmana.entity.SysDepa;

/**
 * 部门管理Dao
 * @author gaof
 * @date 2016年12月20日
 */
public interface ISysDepaDao {

	/**
	 * 获取所有部门信息
	 * @return
	 */
	public List<SysDepa> depaList();

	/**
	 * 添加部门
	 * @param depa
	 */
	public void addDepa(SysDepa depa);

	/**
	 * 通过部门id获取部门
	 * @param id
	 * @return
	 */
	public SysDepa getDepaById(Integer id);

	/**
	 * 删除所有部门
	 */
	public void delAllDepa();

	/**
	 * 通过pid获取下级部门
	 * @param id
	 * @return
	 */
	public List<SysDepa> listDepaByPId(Integer id);

	/**
	 * 删除部门列表
	 * @param depaList
	 */
	public void delDepaList(List<SysDepa> depaList);

	/**
	 * 根据部门code获取部门信息
	 * @param fjDcode
	 * @return
	 */
	public SysDepa getDepaByCode(String fjDcode);

	/**
	 * 根据部门列表获取部门信息
	 * @param type
	 * @return
	 */
	public List<SysDepa> getDepaListByType(String type);

	/**
	 * 根据用户的部门ID 获取  将用户设想为叶子节点 ，通过部门PID，获取到根节点的 部门ID 集合
	 * @param deparId
	 * @return
	 */
	public List<String> getDepaNameListById(Integer deparId);
	
	/**
	 * 根据用户的部门ID 获取  将用户设想为叶子节点 ，通过部门PID，获取到根节点的 部门ID 拼接的字符串 用于in查询
	 * @param deparId
	 * @return
	 */
	public String getDepaNameStrInById(Integer deparId);

	/**
	 * 根据排序查出部门以及编号
	 * @return
	 */
	public List<SysDepa> getDeparBySort();

	/**
	 * 通过当前deparId递归取出子部门
	 * @param deparId
	 * @param list
	 * @return
	 */
	public List<SysDepa> getDeparSonIdByPId(List<SysDepa> list, Integer deparId);

	


}
